fastjson2

您所在的位置:网站首页 fastjson safemode默认开启 fastjson2

fastjson2

2024-07-17 13:54:51| 来源: 网络整理| 查看: 265

FASTJSON 2 Autotype机制介绍 1. AutoType功能介绍

FASTJSON支持AutoType功能,这个功能会在序列化的JSON字符串中带上类型信息,在反序列化时,不需要传入类型,实现自动类型识别。

2. AutoType安全机制介绍 必须显式打开才能使用。和fastjson 1.x不一样,fastjson 1.x为了兼容有一个白名单,在fastjson 2中,没有任何白名单,也不包括任何Exception类的白名单,必须显式打开才能使用。这可以保证缺省配置下是安全的。 支持配置safeMode,在safeMode打开后,显式传入AutoType参数也不起作用。 显式打开后,会经过内置黑名单过滤。该黑名单能拦截大部分常见风险,这个机制不能保证绝对安全,打开AutoType不应该在暴露在公网的场景下使用。 3. AutoType功能使用介绍 3.1 序列化时带上类型信息

如果需要序列化时带上类型信息,需要使用JSONWriter.Feature.WriteClassName。比如:

Bean bean = ...; String jsonString = JSON.toJSONString(bean, JSONWriter.Feature.WriteClassName);

很多时候,root对象是可以知道类型的,里面的对象字段是基类或者不确定类型,这个时候不输出root对象的类型信息,可以减少序列化结果的大小,也能提升反序列化的性能。

Bean bean = ...; String jsonString = JSON.toJSONString(bean, JSONWriter.Feature.WriteClassName, JSONWriter.Feature.NotWriteRootClassName); 3.2 反序列化时打开AutoType功能以支持自动类型 Bean bean = (Bean) JSON.parseObject(jsonString, Object.class, JSONReader.Feature.SupportAutoType); 4. 配置safeMode

配置SafeMode会完全禁用AutoType功能,如果程序中显式指定类型,AutoType功能也不会生效。

4.1 JVM启动参数配置 -Dfastjson2.parser.safeMode=true 5. 使用AutoTypeFilter在不打开AutoTypeSupport时实现自动类型

当打开AutoTypeSupport,虽然内置了一个比较广泛的黑名单,但仍然是不够安全的。下面有一种办法是控制当前调用的AutoType支持范围,避免全局打开,这个更安全。

public class FastJsonRedisSerializer implements RedisSerializer { static final Filter autoTypeFilter = JSONReader.autoTypeFilter( // 按需加上需要支持自动类型的类名前缀,范围越小越安全 "org.springframework.security.core.authority.SimpleGrantedAuthority" ); private Class clazz; public FastJsonRedisSerializer(Class clazz) { super(); this.clazz = clazz; } @Override public byte[] serialize(T t) { if (t == null) { return new byte[0]; } return JSON.toJSONBytes(t, JSONWriter.Feature.WriteClassName); } @Override public T deserialize(byte[] bytes) { if (bytes == null || bytes.length


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭